#ifndef TREESPEC_H
#define TREESPEC_H

class Entity;
class TextMan;

class TreeSpec
{
public:
	float 					D;
	float 					infDistMultOfD;	
	float 					killDistMultOfD;
	float 					minArea;
	float 					textParamX;	
	float 					textParamY;
	int						smoothLevel;
	// envelope
	float					envelopeRadius;
	cg::Vec3				envelopeCenter;
	int						envelopeAtractionPoints;
	//
	std::string				textureName;
};

class Mutator
{
public:
	Mutator();

	float scale;
};

CG_INLINE Mutator::Mutator()
{
	scale = 1.0f;
}

class TreeSpecMan
{
public:
	//
	TreeSpec				birch;	
	TreeSpec				tree1;
	TreeSpec				tree2;
	TreeSpec				tree3;
	
							TreeSpecMan();
	Entity* GenerateTree( const TreeSpec& treeSpec, TextMan& textMan, const Mutator& mutator );
};

#endif